﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DA;
using Businis;

namespace qlhocsinh
{
    public partial class Frtiepnhanhocsinh : Form
    {
        DataLINQHocSinhDataContext db = new DataLINQHocSinhDataContext();
        tiepnhanhocsinh_BUS tnhs_bu = new tiepnhanhocsinh_BUS();
        tiepnhanhocsinh_DA tnhs_da = new tiepnhanhocsinh_DA();
        QUYDINH qd = new QUYDINH();
        LOP l = new LOP();
        HOCSINH hs = new HOCSINH();
        public Frtiepnhanhocsinh()
        {
            InitializeComponent();
        }
        public void loadData()
        {
            dataGridView_hstt.DataSource = tnhs_bu.LayALL();
            dataGridView1.DataSource = tnhs_da.Laytheomalop(lbmalop.Text.ToString());            
        }
        public void Hienthilistbox()
        {
            lbmalop.DataSource = tnhs_bu.LTML();
            lbmalop.DisplayMember = "MALOP";
            lbmalop.ValueMember = "TENLOP";
        }
        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult traloi;
            traloi = MessageBox.Show("Bạn có chắc không?", "Đóng cửa sổ lại!",
            MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (traloi == DialogResult.OK)
                this.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Frdanhsachhocsinh frdshs = new Frdanhsachhocsinh();
            frdshs.ShowDialog();
        }

        private void Frtiepnhanhocsinh_Load(object sender, EventArgs e)
        {
            loadData();
            angiaodien();
            Hienthilistbox();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //button them
            hiengiaodien();
            resettexbox();
            btnthem.Enabled = false;            
        }
        public void resettexbox()
        {
            txthoten.Text = "";
            txtdiachi.Text = "";
            txtemail.Text = "";
            dtngaysinh.Text = "";
            lbmalop.Text = "";
            txtmahs.Text = "CD" + LaySTT(dataGridView_hstt.Rows.Count + 1);
        }
        private void lbtenlop_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridView1.DataSource = tnhs_da.Laytheomalop(lbmalop.Text.ToString());
        }
        public String LaySTT(int autoNum)
        {
            if (autoNum < 10)
                return "000" + autoNum;

            else if (autoNum >= 10 && autoNum < 100)
                return "00" + autoNum;

            else if (autoNum >= 100 && autoNum < 1000)
                return "0" + autoNum;

            else if (autoNum >= 1000 && autoNum < 10000)
                return "" + autoNum;

            else
                return "";
        }
        public void angiaodien()
        {            
            btnluu.Enabled = false;
            btn_huybo.Enabled = false;
            txthoten.Enabled = false;
            txtdiachi.Enabled = false;
            txtemail.Enabled = false;
            dtngaysinh.Enabled = false;
            txtmahs.Enabled = false;
            txttuoi.Enabled = false;
        }
        public void hiengiaodien()
        {
            btnthem.Enabled = false;
            btn_huybo.Enabled = true;
            btnluu.Enabled = true;
            txthoten.Enabled = true;
            txtdiachi.Enabled = true;
            txtemail.Enabled = true;
            dtngaysinh.Enabled = true;            
        }

        private void btn_huybo_Click(object sender, EventArgs e)
        {
            resettexbox();
        }

        private void btnluu_Click(object sender, EventArgs e)
        {
            int n = int.Parse(dataGridView1.Rows.Count.ToString());
                try
                {
                        if (txthoten.Text == "")
                        {
                            MessageBox.Show("Bạn Phải Nhập Họ Tên");
                            txthoten.Focus();
                        }
                        else if (txtemail.Text == "")
                        {
                            MessageBox.Show("Bạn Phải Nhập Email");
                            txtemail.Focus();
                        }
                        else if (txtdiachi.Text == "")
                        {
                            MessageBox.Show("Bạn Phải Nhập Địa Chỉ");
                            txtdiachi.Focus();
                        }
                        else if (ck_nam.Text == "" || ck_nu.Text == "")
                        {
                            MessageBox.Show("Bạn Phải Chọn Giới Tính!");
                            groupBox_gt.Focus();
                        }
                        else
                        {
                            if (tnhs_bu.KiemTraSiSo(n) == false)
                            {
                                MessageBox.Show("Sỉ số học sinh của lớp" +" " +lbmalop.Text.ToString()+" "+ "đã vượt quá sỉ số quy định!","Vui lòng kiểm tra lại");
                            }
                            else
                            {
                                int tuoinv = int.Parse(txttuoi.Text);
                                if (tnhs_da.tuoi(1) < tuoinv || tnhs_da.tuoi(2) > tuoinv)
                                {
                                    MessageBox.Show("Tuổi học sinh " + txthoten.Text.ToString() + " không đúng quy định, Tuổi phải từ" + " " + tnhs_da.tuoi(2) + " " + "đến" + " " + tnhs_da.tuoi(1) + " " + " tuổi!", "Lỗi Rồi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                else
                                {
                                    LuuHocSinh();
                                    MessageBox.Show("Thêm học sinh thành công!", "Thông Báo");
                                }                                
                            }
                        }
                }
                catch (Exception)
                {
                    btnluu.Enabled = true;
                    MessageBox.Show("Thêm không thành công!", "Thông báo");
                }
            }
        //}
        public void LuuHocSinh()
        {
            btn_huybo.Enabled = false;
            btnthem.Enabled = true;
            btnluu.Enabled = false;

                    bool gioitinh;
                    if (ck_nam.Checked)
                    {
                        gioitinh = true;

                    }
                    else
                    {
                        gioitinh = false;

                    }
                    tnhs_bu.them_hs(txtmahs.Text, txthoten.Text, txtemail.Text, gioitinh, DateTime.Parse(dtngaysinh.Text), txtdiachi.Text, lbmalop.Text); 
                    loadData();      
        }
        private void dtngaysinh_ValueChanged(object sender, EventArgs e)
        {
            int nam = int.Parse(DateTime.Now.Year.ToString());
            int dtp = int.Parse(dtngaysinh.Value.Year.ToString());
            if (dtp <= nam)
            {
                txttuoi.Text = (nam - dtp).ToString();
            }
            else
            {
                MessageBox.Show("Năm sinh không hợp lệ !", "Thông Báo");
                dtngaysinh.Value = DateTime.Now;

            }
        }

        private void button1_Click_1(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            txtmahs.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            txthoten.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            txtemail.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
            groupBox_gt.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
            dtngaysinh.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString();
            txtdiachi.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString();
            lbmalop.Text = dataGridView1.CurrentRow.Cells[6].Value.ToString();
        }     
    }
}
